//package aiP.A2.GUI;
//
//import aiP.A2.Main;
//import AuftragKomponente.DataAccessLayer.AiAngebot_Entity;
//import FertigungKomponente.DataAccessLayer.AiBauteil_Entity;
//import BuchhaltungKomponente.DataAccessLayer.AiKunde_Entity;
//import org.hibernate.Transaction;
//import javax.swing.*;
//import java.awt.*;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import java.math.BigDecimal;
//import java.util.Collection;
//import java.util.HashSet;
//import java.util.Map;
//import java.util.Set;
//
///**
// * Created with IntelliJ IDEA.
// * User: mizus
// * Date: 04.05.14
// * Time: 15:48
// * To change this template use File | Settings | File Templates.
// */
//public class GUI_Main extends JFrame {
//
//    private Map<String, AiKunde_Entity> map_Kunde;
//    private Map<String, AiBauteil_Entity> map_Bauteil;
//    private Map<Integer, AiKunde_Entity> map_Kunde_id;
//
//    public GUI_Main(Map<String, AiBauteil_Entity> aBauteil,Map<String, AiKunde_Entity> aKunde, Map<Integer,AiKunde_Entity> kundeID){
//        map_Bauteil = aBauteil;
//        map_Kunde = aKunde;
//        map_Kunde_id = kundeID;
//        init();
//    }
//
//    private void init(){
//        action();
//        fillComboBauteil(map_Bauteil.values(), combo_baustein);
//        fillComboKunde(map_Kunde.values(), combo_kundenname);
//
//
//        menu_angebot.add(item_angebot);
//        menu_angebot.add(new JSeparator());
//        menu_angebot.add(item_edit);
//        menu_angebot.add(item_del);
//        menu_angebot.add(new JSeparator());
//        menu_angebot.add(item_view);
//
//        menu_auftrag.add(item_auftrag);
//        menu_auftrag.add(new JSeparator());
//
//        menu_start.add(item_exit);
//
//        menuBar.add(menu_start);
//        menuBar.add(menu_angebot) ;
//        menuBar.add(menu_auftrag);
//        menuBar.add(menu_fertigung);
//
//        this.setJMenuBar(menuBar);
//
//
//        this.setSize(500,500);
//        this.setVisible(true);
//    }
//
//
//    private void action(){
//        item_exit.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                System.exit(0);
//            }
//        });
//
//        item_angebot.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                clearAll();
//                newAngebot();
//            }
//        });
//
//        item_auftrag.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                create_Auftrag();
//            }
//        });
//
//        btn_okay_bauteil.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                action_saveAuftrag();
//            }
//        });
//        btn_save_auftrag.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                action_saveAuftrag();
//            }
//        });
//
//        btn_cancel_bauteil.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                action_cancelBtn();
//            }
//        });
//
//        btn_cancel_auftrag.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                action_cancelBtn();
//            }
//        });
//
//        btn_addProdukt.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                action_addBauteil();
//            }
//        });
//
//        combo_baustein.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//               action_combo_baustein(e);
//            }
//        });
//
//        btn_auftrag_sucheKunde.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                searchKunde(e);
//            }
//        });
//
//    }
//
//    private void searchKunde(ActionEvent e) {
//        try{
//            int kundenid =  Integer.valueOf(txtfld_auftrag_kundenr.getText()).intValue();
//            if (map_Kunde_id.containsKey(kundenid)){
//                AiKunde_Entity kunde = map_Kunde_id.get(kundenid);
//                lbl_auftrag_view_kundenname.setText(kunde.getName());
//
//
//            } else
//                JOptionPane.showMessageDialog(this, "Der Kunder wurde nicht gefunden");
//        }catch (NumberFormatException ne){
//            JOptionPane.showMessageDialog(this, "Die ID kann nur aus zahlen bestehen", "Fehler", JOptionPane.ERROR_MESSAGE);
//        }
//    }
//
//    void action_combo_baustein(ActionEvent e){
//        AiBauteil_Entity baustein = map_Bauteil.get(""+combo_baustein.getSelectedItem());
//
//        lbl_bauteil_view_gewicht.setText(""+baustein.getGewicht());
//        lbl_bauteil_view_preis.setText(""+baustein.getPreis());
//        lbl_bauteil_view_name.setText(baustein.getName());
//        lbl_bauteil_view_id.setText(""+baustein.getBauteilId());
//
//    }
//
//    void newAngebot(){
//        this.getContentPane().removeAll();
//        komponenten_ID = ID_ADD_Angebot;
//
//        pnl_angebot.setLayout(null);
//        txtarea_warenkorb.setEditable(false);
//        lbl_name.setBounds(new Rectangle(10,10,100,21));
//        lbl_produkt.setBounds(new Rectangle(10,50,100, 21));
//        lbl_preis_gesamt.setBounds(new Rectangle(10,90, 100,21));
//        lbl_warenkorb.setBounds(new Rectangle(10,130,100,21));
//
//        combo_kundenname.setBounds(new Rectangle(120, 10, 100,21));
//        btn_addProdukt.setBounds(new Rectangle(120, 50, 50, 21));
//        lbl_auftrag_view_gesamt_preis.setBounds(new Rectangle(120, 90,80,21 ));
//        lbl_euro_view_auftrag.setBounds(new Rectangle(200,90,30,21));
//        txtarea_warenkorb.setBounds(new Rectangle(120, 130, 350, 200));
//
//        btn_save_auftrag.setBounds(new Rectangle(160, 350, 50, 21));
//        btn_cancel_auftrag.setBounds(new Rectangle(220, 350, 80, 21));
//
//        pnl_angebot.add(lbl_name, null);
//        pnl_angebot.add(lbl_preis_gesamt, null);
//        pnl_angebot.add(lbl_produkt, null);
//        pnl_angebot.add(lbl_warenkorb,null);
//        pnl_angebot.add(combo_kundenname, null);
//        pnl_angebot.add(btn_addProdukt, null);
//        pnl_angebot.add(lbl_auftrag_view_gesamt_preis, null);
//        pnl_angebot.add(txtarea_warenkorb, null);
//        pnl_angebot.add(btn_cancel_auftrag,null);
//        pnl_angebot.add(btn_save_auftrag,null);
//        pnl_angebot.add(lbl_euro_view_auftrag, null);
//
//        this.getContentPane().add(pnl_angebot, BorderLayout.CENTER);
//        this.validate();
//        this.repaint();
//    }
//
//    private void create_Auftrag(){
//       this.getContentPane().removeAll();
//       komponenten_ID = ID_ADD_Auftrag;
//       pnl_auftrag.setLayout(null);
//
//       lbl_auftrag_kunde.setBounds(new Rectangle(10,10,120,21));
//       txtfld_auftrag_kundenr.setBounds(new Rectangle(130,10,50,21));
//       btn_auftrag_sucheKunde.setBounds(new Rectangle(190,10,50,21));
//       lbl_auftrag_kundenname.setBounds(new Rectangle(10, 80, 120, 21));
//
//       lbl_auftrag_view_kundenname.setBounds(new Rectangle(130,80,120,21));
//
//        pnl_auftrag.add(lbl_auftrag_kunde, null);
//        pnl_auftrag.add(txtfld_auftrag_kundenr, null);
//        pnl_auftrag.add(btn_auftrag_sucheKunde, null);
//        pnl_auftrag.add(lbl_auftrag_kundenname,null);
//        pnl_auftrag.add(lbl_auftrag_view_kundenname, null);
//
//        this.getContentPane().add(pnl_auftrag, BorderLayout.CENTER);
//        this.validate();
//        this.repaint();
//    }
//
//    void action_addBauteil(){
//        this.getContentPane().remove(pnl_angebot);
//        this.validate();
//        this.repaint();
//        komponenten_ID = ID_bauteil;
//
//        pnl_bauteil.setLayout(null);
//
//        lbl_bauteil_combo.setBounds(new Rectangle(10,10,180,21));
//        lbl_arikelnummer.setBounds(new Rectangle(10,50,130, 21));
//        lbl_bauteil_name.setBounds(new Rectangle(10, 90,130,21));
//        lbl_bauteil_gewicht.setBounds(new Rectangle(10, 130, 130,21));
//        lbl_preis_einzel.setBounds(new Rectangle(10, 170,130,21));
//
//        combo_baustein.setBounds(new Rectangle(140,10,100,30));
//        lbl_bauteil_view_id.setBounds(new Rectangle(140,50,100,21));
//        lbl_bauteil_view_name.setBounds(new Rectangle(140,90,100,21));
//        lbl_bauteil_view_gewicht.setBounds(new Rectangle(140,130,80,21));
//        lbl_bauteil_view_preis.setBounds(new Rectangle(140, 170, 80, 21));
//        lbl_kg_view.setBounds(new Rectangle(220,130,40,21));
//        lbl_euro_view.setBounds(new Rectangle(220,170,40,21));
//
//        btn_okay_bauteil.setBounds(new Rectangle(150, 200, 50, 21));
//        btn_cancel_bauteil.setBounds(new Rectangle(210,200,80,21));
//
//        btn_okay_bauteil.setText("Add");
//
//        pnl_bauteil.add(lbl_bauteil_name, null);
//        pnl_bauteil.add(lbl_bauteil_combo, null);
//        pnl_bauteil.add(lbl_preis_einzel,null);
//        pnl_bauteil.add(combo_baustein, null);
//        pnl_bauteil.add(lbl_bauteil_gewicht, null);
//        pnl_bauteil.add(lbl_bauteil_view_name, null);
//        pnl_bauteil.add(lbl_bauteil_view_gewicht, null);
//        pnl_bauteil.add(lbl_bauteil_view_id, null);
//        pnl_bauteil.add(lbl_bauteil_view_preis, null);
//        pnl_bauteil.add(lbl_euro_view, null);
//        pnl_bauteil.add(lbl_kg_view, null);
//        pnl_bauteil.add(lbl_arikelnummer,null);
//        pnl_bauteil.add(btn_cancel_bauteil, null);
//        pnl_bauteil.add(btn_okay_bauteil,null);
//
//
//        this.getContentPane().add(pnl_bauteil);
//        this.validate();
//    }
//
//    void action_cancelBtn(){
//        switch (komponenten_ID){
//            case ID_ADD_Angebot:
//                this.getContentPane().remove(pnl_angebot);
//                this.validate();
//                this.repaint();
//                break;
//            case ID_bauteil:
//                this.getContentPane().remove(pnl_bauteil);
//                newAngebot();
//                this.validate();
//                this.repaint();
//                break;
//            case ID_ADD_Auftrag:
//                this.getContentPane().remove(pnl_auftrag);
//                this.validate();
//                this.repaint();
//                break;
//        }
//    }
//
//    void action_saveAuftrag(){
//        switch (komponenten_ID){
//            case ID_ADD_Angebot:
//                addAngebot();
//                this.getContentPane().remove(pnl_angebot);
//                this.validate();
//                break;
//            case ID_EDIT_Angebot:
//
//                this.getContentPane().remove(pnl_angebot);
//                this.validate();
//                break;
//            case ID_VIEW_Angebot:
//
//                this.getContentPane().remove(pnl_angebot);
//                this.validate();
//                break;
//
//            case ID_Ferttigung:
//
//                this.getContentPane().remove(pnl_angebot);
//                this.validate();
//                break;
//            case ID_bauteil:
//                if(combo_baustein.getSelectedIndex() != -1){
//                    addBauteil();
//                    this.getContentPane().remove(pnl_bauteil);
//                    newAngebot();
//                    this.validate();
//                    this.repaint();
//                }else
//                    JOptionPane.showMessageDialog(this, "Bitte ein Bauteil auswählen bevor Add", "Fehler", JOptionPane.ERROR_MESSAGE);
//
//                break;
//            case ID_ADD_Auftrag:
//
//                break;
//
//        }
//    }
//
//
//    private void addBauteil(){
//            txtarea_warenkorb.setText("");
//            auftragsVolumen.add(map_Bauteil.get(""+combo_baustein.getSelectedItem()));
//            double gesamtPreis = 0;
//            for (AiBauteil_Entity elem : auftragsVolumen){
//                txtarea_warenkorb.append(elem.toString() + "\n");
//                txtarea_warenkorb.append("============================\n");
//                gesamtPreis += Double.valueOf(""+elem.getPreis()).doubleValue();
//            }
//            gesamtPreis_Angebot = gesamtPreis;
//            lbl_auftrag_view_gesamt_preis.setText(createViewPriece(gesamtPreis));
//    }
//
//    private void addAngebot(){
//        AiAngebot_Entity newOffer = new AiAngebot_Entity();
//        newOffer.setAngebotsnr(offerID++);
//       // newOffer.set(auftragsVolumen);
//        newOffer.setGesamtpreis(BigDecimal.valueOf((double) gesamtPreis_Angebot));
//        AiKunde_Entity kunde = map_Kunde.get(""+combo_kundenname.getSelectedItem());
//        newOffer.setKundenNr(kunde.getKundeId());
//        this.getContentPane().removeAll();
//        this.validate();
//        this.repaint();
//        //Hibernate
//        Transaction tx =  Main.getSession().beginTransaction();
//        Main.getSession().saveOrUpdate(newOffer);
//        tx.commit();
//    }
//
//    private AiBauteil_Entity getBauteil(Collection<AiBauteil_Entity> col, String name){
//        AiBauteil_Entity result = null;
//        for (AiBauteil_Entity elem: col) {
//            if (elem.getName().equals(name)) result = elem;
//        }
//        return result;
//    }
//
//    private void fillComboBauteil(Collection<AiBauteil_Entity> col, JComboBox comboBox){
//        for (AiBauteil_Entity elem: col){
//            comboBox.addItem(elem.getName());
//        }
//    }
//
//
//    private void fillComboKunde(Collection<AiKunde_Entity> col, JComboBox comboBox){
//        for (AiKunde_Entity elem: col){
//            comboBox.addItem(elem.getName());
//        }
//    }
//
//    private void clearAll(){
//        txtarea_warenkorb.setText("");
//        txtfld_preis.setText("");
//        txtfld_preis.setText("");
//        auftragsVolumen = new HashSet<AiBauteil_Entity>();
//    }
//
//    private void out(String str){
//        System.out.println(str);
//    }
//
//    private String createViewPriece(double gesamtPreis){
//        String result = "";
//        int tmp =  (int)gesamtPreis*100;
//        double tmo2= tmp/100;
//        result += tmo2;
//        return result;
//    }
//
//    ////////////////////
//    //  Komponenten  //
//    //////////////////
//
//    private Set<AiBauteil_Entity> auftragsVolumen;
//
//    private int komponenten_ID;
//
//    private final int ID_ADD_Angebot = 0;
//    private final int ID_EDIT_Angebot = 1;
//    private final int ID_DEL_Angebot= 2;
//    private final int ID_VIEW_Angebot = 3;
//    private final int ID_Ferttigung = 4;
//    private final int ID_bauteil = 5;
//    private final int ID_ADD_Auftrag = 6;
//
//    private JLabel lbl_name = new JLabel("Kundenname: ");
//    private JLabel lbl_produkt = new JLabel("Neues Bauteil");
//    private JLabel lbl_warenkorb = new JLabel("Warenkorb: ");
//    private JLabel lbl_preis_gesamt = new JLabel("Preis: ");
//    private JLabel lbl_preis_einzel = new JLabel("Preis: ");
//    private JLabel lbl_arikelnummer = new JLabel("Artikelnummer: ");
//
//    private JLabel lbl_bauteil_view_preis = new JLabel();
//    private JLabel lbl_bauteil_view_gewicht = new JLabel();
//    private JLabel lbl_bauteil_view_name = new JLabel();
//    private JLabel lbl_bauteil_view_id = new JLabel();
//    private JLabel lbl_auftrag_view_gesamt_preis = new JLabel();
//
//    private JLabel lbl_euro_view = new JLabel("\u20ac");
//    private JLabel lbl_euro_view_auftrag = new JLabel("\u20ac");
//    private JLabel lbl_kg_view = new JLabel("Kg");
//
//    private JLabel lbl_bauteil_combo = new JLabel("Wähle ein Bauteil: ");
//    private JLabel lbl_bauteil_name = new JLabel("Name: ");
//    private JLabel lbl_bauteil_gewicht = new JLabel("Gewicht: ");
//
//    private JComboBox combo_kundenname = new JComboBox();
//    private JTextField txtfld_preis = new JTextField();
//
//    private JButton btn_addProdukt = new JButton("Add");
//    private JTextArea txtarea_warenkorb = new JTextArea();
//
//    private JButton btn_save_auftrag = new JButton("Save");
//    private JButton btn_cancel_auftrag = new JButton("Abbrechen");
//    private JButton btn_okay_bauteil = new JButton("Save");
//    private JButton btn_cancel_bauteil = new JButton("Abbrechen");
//
//    private JButton btn_auftrag_sucheKunde = new JButton("Suche");
//    private JTextField txtfld_auftrag_kundenr = new JTextField();
//    private JLabel lbl_auftrag_kunde = new JLabel("Kundennummer: ");
//    private JLabel lbl_auftrag_kundenname = new JLabel("Kundenname: ");
//
//    private JLabel lbl_auftrag_view_kundenname = new JLabel();
//
//
//
//    private JPanel pnl_auftrag = new JPanel();
//    private JPanel pnl_bauteil = new JPanel();
//    private JPanel pnl_angebot = new JPanel();
//
//
//    private JMenu menu_start = new JMenu("Start");
//    private JMenu menu_angebot = new JMenu("Angebot");
//    private JMenu menu_auftrag = new JMenu("Auftrag");
//    private JMenu menu_fertigung = new JMenu("Fertigung");
//
//    private JMenuItem item_angebot = new JMenuItem("Neu");
//    private JMenuItem item_edit = new JMenuItem("Editiere");
//    private JMenuItem item_del = new JMenuItem("Löschen");
//    private JMenuItem item_view = new JMenuItem("Anzeigen");
//    private JMenuItem item_auftrag = new JMenuItem("Neu");
//
//    private JMenuItem item_exit= new JMenuItem("Close");
//
//    private JMenuBar menuBar = new JMenuBar();
//
//    private JComboBox combo_baustein = new JComboBox();
//
//    private int offerID = 0;
//    private double gesamtPreis_Angebot;
//}
